package club.xyes.remotedisplay.jni;

public class SSD1306 {
    public static final int SSD1306_COLUMNADDR = 0x21;
    public static final int SSD1306_PAGEADDR = 0x22;

    public static void loadLibrary(String libPath) {
        System.load(libPath);
    }

    public static native void displayBegin();

    public static native void ssd1306Command(int c);

    public static native void ssd1306ClearDisplay();

    public static native void ssd1306InvertDisplay(int i);

    public static native void ssd1306Display();

    public static native void ssd1306StartScrollRight(int start, int stop);

    public static native void ssd1306StartScrollLeft(int start, int stop);

    public static native void ssd1306StartScrollDiagright(int start, int stop);

    public static native void ssd1306StartScrollDiagleft(int start, int stop);

    public static native void ssd1306StopScroll();

    public static native void ssd1306Dim(int dim);

    public static native void ssd1306DrawPixel(int x, int y, int color);

    public static native void ssd1306DrawFastVLine(int x, int y, int h, int color);

    public static native void ssd1306DrawFastHLine(int x, int y, int w, int color);

    public static native void ssd1306FillRect(int x, int y, int w, int h, int color);

    public static native void ssd1306SetTextSize(int s);

    public static native void ssd1306DrawString(String str);

    public static native void ssd1306DrawChar(int x, int y, char c, int color, int size);

    public static native void ssd1306Data(int data);

    public static native void ssd1306DataArray(int[] array, int length);
}
